#include <iostream>
using std::cout;
using std::endl;

template <class T>
T add(T t1, T t2){
    return t1 + t2;
}

void test(){
    short s1 = 9;
    int i2 = 10;
    //因为当前使用隐式实例化，根据传递的类型进行自动推断类型
    //无法推断出合适的类型，所以会出错
    //cout << add(s1, i2) << endl;error
    //此时可以使用显示实例化
    //表示T=int
    //int add(int t1, int t2);
    cout << add<int>(s1, i2) << endl;
}

void test2(){
    int i1 = 4;
    double d2 = 5.3;
    cout << add<int>(i1, d2) << endl;
}

int main()
{
    test2();
    return 0;
}

